/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package manager.modulo.ordemservico.fonte;

import java.sql.SQLException;
import java.util.LinkedList;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.table.TableRowSorter;
import manager.auxiliares.Configurations;
import manager.auxiliares.FixedLengthDocument;
import manager.auxiliares.Format;
import manager.auxiliares.MensagemExcessao;
import manager.helpers.table.TableModel;
import manager.helpers.table.TableRender;
import manager.helpers.table.TableRowComparator;
import manager.interfaces.InterfaceTable;
import manager.modulo.ordemservico.dao.*;
import manager.modulo.ordemservico.enumerator.EnumAvaliacaoOrdemServico;
import manager.modulo.ordemservico.enumerator.EnumAvaliacaoOrdemServico.AvaliacaoOS;
import manager.modulo.ordemservico.enumerator.EnumTipoOrdemServico;
import manager.principal.fonte.JanelaLogin;

/**
 *
 * @author THIAGO
 */
public class JanelaAvaliacaoOrdemServico extends javax.swing.JFrame {

    int idUnidadeAtendimento;
    int idOrdemServico;
    TableModel tableModel;
    TableRender tableRender;
    TableRowSorter tableRowSorter;
    LinkedList<SituacaoOrdemServicoDao> listaSituacao;

    /**
     * Creates new form JanelaOrdemServico
     */
    public JanelaAvaliacaoOrdemServico() {
        initComponents();
    }

    /**
     * Creates new form UserWindow
     */
    public JanelaAvaliacaoOrdemServico(int novoId) {
        try {
            // Define layout de acordo com o SO que estiver rodando
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            this.setIconImage(JanelaLogin.icon);
            idUnidadeAtendimento = novoId;
            idOrdemServico = 0;
            initComponents();
            configureWindow();
            this.setLocationRelativeTo(null);
            this.setVisible(true);
        } catch (Exception e) {
            MensagemExcessao.mostrarMensagem(e, this.getTitle());
        }
    }

    /**
     * Inicializando as configurações da tela
     *
     * @throws SQLException
     */
    private void configureWindow() throws SQLException {
        UnidadeAtendimentoDao unidadeAtendimentoDao = new UnidadeAtendimentoDao();
        unidadeAtendimentoDao.buscar(idUnidadeAtendimento);
        this.setTitle("Avaliação das Ordens de Servico do(a) - " + unidadeAtendimentoDao.getIdentificador());
        
        LinkedList<AvaliacaoOS> listaAvaliacao = EnumAvaliacaoOrdemServico.ListaEnum();
        for (int i = 0; i < listaAvaliacao.size(); i++) {
            jComboBox1.addItem(EnumAvaliacaoOrdemServico.ConvertEnumString(listaAvaliacao.get(i)));
            jComboBox2.addItem(EnumAvaliacaoOrdemServico.ConvertEnumString(listaAvaliacao.get(i)));
            jComboBox3.addItem(EnumAvaliacaoOrdemServico.ConvertEnumString(listaAvaliacao.get(i)));
            jComboBox4.addItem(EnumAvaliacaoOrdemServico.ConvertEnumString(listaAvaliacao.get(i)));
        }

        configurarTabela();
        checkRequiredFields();
    }

    private void configurarTabela() {
        tableRender = new TableRender();
        tableModel = new TableModel(getNomeColunaTabela(), tableRender, new InterfaceTable() {

            public void tableAction(int id, int columnindex, int rowIndex) {
                if (columnindex < 0) {
                    selecionarOrdemServico(id);
                }
            }

            public boolean isEditableColumn(int columnIndex) {
                if (columnIndex == 0) {
                    return true;
                }
                return false;
            }
        });
        jTable1.setModel(tableModel);
        jTable1.getColumnModel().getColumn(0).setMaxWidth(20);
        jTable1.getColumnModel().getColumn(0).setMinWidth(20);
        jTable1.getColumnModel().getColumn(0).setResizable(false);
        TableRowComparator tableRowComparator = new TableRowComparator();
        tableRowSorter = tableRowComparator;
        jTable1.setRowSelectionAllowed(false);

        buscarTabela();
    }

    private void buscarTabela() {
        try {
            tableModel.update(AvaliacaoOrdemServicoDao.buscaTabela(idUnidadeAtendimento));
            jTable1.setDefaultRenderer(Object.class, tableRender);
            tableRowSorter.setModel(tableModel);

            jTable1.setRowSorter(tableRowSorter);

            if (tableModel.getRowCount() > 0) {
                selecionarOrdemServico((Integer) tableModel.getIdList().get(0));
            } else {
                JOptionPane.showMessageDialog(null, "Parabéns, você concluiu a avaliação de todas as OS pendentes.", "Avaliação de Ordens de Serviço", JOptionPane.INFORMATION_MESSAGE);
                this.dispose();
            }
        } catch (Exception e) {
            MensagemExcessao.mostrarMensagem(e, "Avaliação de Ordens de Serviço");
        }
    }

    public LinkedList<String> getNomeColunaTabela() {
        LinkedList<String> columnNames = new LinkedList<String>();
        columnNames.add("");
        columnNames.add("Número da OS");
        columnNames.add("Ponto de Atendimento");
        columnNames.add("Data do Cadastro");
        columnNames.add("Última Modificação");
        columnNames.add("Usuário");
        columnNames.add("Situação");
        return columnNames;
    }

    private void checkRequiredFields() {
    }

    public void selecionarOrdemServico(int idOrdemServico) {
        cancelarAvaliacaoOS();
        this.idOrdemServico = idOrdemServico;
        OrdemServicoDao ordemServicoDao = new OrdemServicoDao();
        ordemServicoDao.buscar(idOrdemServico);
        if (!ordemServicoDao.isAvaliada()) {
            jTextField1.setText(Integer.toString(ordemServicoDao.getId()));

            PontoAtendimentoDao pontoAtendimentoDao = new PontoAtendimentoDao();
            pontoAtendimentoDao.buscar(ordemServicoDao.getIdPontoAtendimento());

            UnidadeAtendimentoDao unidadeAtendimentoDao = new UnidadeAtendimentoDao();
            unidadeAtendimentoDao.buscar(pontoAtendimentoDao.getIdUnidadeAtendimento());

            jTextField2.setText(unidadeAtendimentoDao.getIdentificador());

            jTextField3.setText(pontoAtendimentoDao.getIdentificador());

            ProcedimentoDao procedimentoDao = new ProcedimentoDao();
            procedimentoDao.buscar(ordemServicoDao.getIdProcedimento());

            jTextField4.setText(procedimentoDao.getNome());

            jTextField5.setText(EnumTipoOrdemServico.ConvertEnumString(ordemServicoDao.getTipo()));

            SituacaoOrdemServicoDao situacaoOrdemServicoDao = new SituacaoOrdemServicoDao();
            situacaoOrdemServicoDao.buscar(SituacaoOrdemServicoDao.buscarPrimeiraSituacao(idOrdemServico));

            jTextField7.setText(Format.formatTimeStampToCompleteDatetime(situacaoOrdemServicoDao.getModificacao()));

            situacaoOrdemServicoDao.buscar(SituacaoOrdemServicoDao.buscarUltimaSituacao(idOrdemServico));

            jTextField6.setText(Format.formatTimeStampToCompleteDatetime(situacaoOrdemServicoDao.getModificacao()));



        }
    }

    public void cadastrarAvaliacaoOS() {
        try {
            try {
                JanelaLogin.connection.setAutoCommit(false);

                AvaliacaoOrdemServicoDao avaliacaoOrdemServicoDao = new AvaliacaoOrdemServicoDao();
                avaliacaoOrdemServicoDao.setIdUsuario(JanelaLogin.getUsuario().getId());
                
                avaliacaoOrdemServicoDao.setIdOrdemServico(idOrdemServico);
                
                if (jCheckBox1.isSelected()) {
                    avaliacaoOrdemServicoDao.setAvaliacaoA1(AvaliacaoOS.MUITOBOM);
                } else if (jCheckBox2.isSelected()) {
                    avaliacaoOrdemServicoDao.setAvaliacaoA1(AvaliacaoOS.BOM);
                } else if (jCheckBox3.isSelected()) {
                    avaliacaoOrdemServicoDao.setAvaliacaoA1(AvaliacaoOS.REGULAR);
                } else if (jCheckBox4.isSelected()) {
                    avaliacaoOrdemServicoDao.setAvaliacaoA1(AvaliacaoOS.PESSIMO);
                }

                if (jCheckBox5.isSelected()) {
                    avaliacaoOrdemServicoDao.setAvaliacaoA2(AvaliacaoOS.MUITOBOM);
                } else if (jCheckBox6.isSelected()) {
                    avaliacaoOrdemServicoDao.setAvaliacaoA2(AvaliacaoOS.BOM);
                } else if (jCheckBox7.isSelected()) {
                    avaliacaoOrdemServicoDao.setAvaliacaoA2(AvaliacaoOS.REGULAR);
                } else if (jCheckBox8.isSelected()) {
                    avaliacaoOrdemServicoDao.setAvaliacaoA2(AvaliacaoOS.PESSIMO);
                }

                
                AvaliacaoOS avaliacaoOS = EnumAvaliacaoOrdemServico.ConvertStringEnum(jComboBox1.getSelectedItem().toString());
                
                avaliacaoOrdemServicoDao.setAvaliacaoA3(avaliacaoOS);

                avaliacaoOS = EnumAvaliacaoOrdemServico.ConvertStringEnum(jComboBox2.getSelectedItem().toString());
                avaliacaoOrdemServicoDao.setAvaliacaoB1(avaliacaoOS);
                
                avaliacaoOS = EnumAvaliacaoOrdemServico.ConvertStringEnum(jComboBox3.getSelectedItem().toString());
                avaliacaoOrdemServicoDao.setAvaliacaoB2(avaliacaoOS);
                
                avaliacaoOS = EnumAvaliacaoOrdemServico.ConvertStringEnum(jComboBox4.getSelectedItem().toString());
                avaliacaoOrdemServicoDao.setAvaliacaoB3(avaliacaoOS);

                avaliacaoOrdemServicoDao.setComentario(jTextArea1.getText());

                if ((avaliacaoOrdemServicoDao.getAvaliacaoA1() != AvaliacaoOS.MUITOBOM || avaliacaoOrdemServicoDao.getAvaliacaoA2() != AvaliacaoOS.MUITOBOM
                        || avaliacaoOrdemServicoDao.getAvaliacaoA3()!= AvaliacaoOS.MUITOBOM   || avaliacaoOrdemServicoDao.getAvaliacaoB1() != AvaliacaoOS.MUITOBOM 
                        || avaliacaoOrdemServicoDao.getAvaliacaoB2() != AvaliacaoOS.MUITOBOM  || avaliacaoOrdemServicoDao.getAvaliacaoB3() != AvaliacaoOS.MUITOBOM ) && avaliacaoOrdemServicoDao.getComentario().equals("")) {
                    JOptionPane.showMessageDialog(null, "Alguma das avaliações não esta com a nota máxima, portanto é necessário que se preencha o campo COMENTÁRIOS \n"
                            + " com o porquê desta não conformidade para que possamos tomar as providências necessárias à correção do problema. Obrigado.", "Avaliação de Ordem de Serviço", JOptionPane.ERROR_MESSAGE);
                } else {
                    
                    avaliacaoOrdemServicoDao.inserir();
                    
                    OrdemServicoDao ordemServicoDao = new OrdemServicoDao();
                    ordemServicoDao.buscar(idOrdemServico);
                    ordemServicoDao.setAvaliada(true);
                    ordemServicoDao.atualizar();

                    JanelaLogin.connection.commit();
                    buscarTabela();
                }
            } catch (Exception e) {
                JanelaLogin.connection.rollback();
                MensagemExcessao.mostrarMensagem(e, this.getTitle());
            } finally {
                JanelaLogin.connection.setAutoCommit(true);
            }

        } catch (Exception ex) {
            MensagemExcessao.mostrarMensagem(ex, this.getTitle());
        }
    }

 
    
    public void cancelarAvaliacaoOS() {
        jCheckBox1.setSelected(true);
        jCheckBox5.setSelected(true);

        jComboBox1.setSelectedIndex(0);
        jComboBox2.setSelectedIndex(0);
        jComboBox3.setSelectedIndex(0);
        jComboBox4.setSelectedIndex(0);
        
        jTextField1.setText("");
        jTextField2.setText("");
        jTextField3.setText("");
        jTextField4.setText("");
        jTextField5.setText("");
        jTextField6.setText("");
        jTextField7.setText("");
        jTextArea1.setText("");

        idOrdemServico = 0;
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        buttonGroup2 = new javax.swing.ButtonGroup();
        buttonGroup3 = new javax.swing.ButtonGroup();
        buttonGroup4 = new javax.swing.ButtonGroup();
        buttonGroup5 = new javax.swing.ButtonGroup();
        buttonGroup6 = new javax.swing.ButtonGroup();
        jScrollPane2 = new javax.swing.JScrollPane();
        jPanel4 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jPanel1 = new javax.swing.JPanel();
        jScrollPane3 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        jTextField3 = new javax.swing.JTextField();
        jTextField4 = new javax.swing.JTextField();
        jTextField5 = new javax.swing.JTextField();
        jTextField6 = new javax.swing.JTextField();
        jTextField7 = new javax.swing.JTextField();
        jLabel9 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();
        jLabel12 = new javax.swing.JLabel();
        jLabel13 = new javax.swing.JLabel();
        jLabel14 = new javax.swing.JLabel();
        jLabel15 = new javax.swing.JLabel();
        jSeparator1 = new javax.swing.JSeparator();
        jLabel18 = new javax.swing.JLabel();
        jSeparator2 = new javax.swing.JSeparator();
        jSeparator3 = new javax.swing.JSeparator();
        jSeparator4 = new javax.swing.JSeparator();
        jCheckBox1 = new javax.swing.JCheckBox();
        jCheckBox2 = new javax.swing.JCheckBox();
        jCheckBox3 = new javax.swing.JCheckBox();
        jCheckBox4 = new javax.swing.JCheckBox();
        jCheckBox5 = new javax.swing.JCheckBox();
        jCheckBox6 = new javax.swing.JCheckBox();
        jCheckBox7 = new javax.swing.JCheckBox();
        jCheckBox8 = new javax.swing.JCheckBox();
        jSeparator5 = new javax.swing.JSeparator();
        jLabel16 = new javax.swing.JLabel();
        jSeparator6 = new javax.swing.JSeparator();
        jLabel19 = new javax.swing.JLabel();
        jLabel20 = new javax.swing.JLabel();
        jLabel21 = new javax.swing.JLabel();
        jLabel22 = new javax.swing.JLabel();
        jLabel23 = new javax.swing.JLabel();
        jSeparator7 = new javax.swing.JSeparator();
        jSeparator8 = new javax.swing.JSeparator();
        jSeparator9 = new javax.swing.JSeparator();
        jSeparator10 = new javax.swing.JSeparator();
        jLabel4 = new javax.swing.JLabel();
        jLabel17 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();
        jLabel25 = new javax.swing.JLabel();
        jLabel26 = new javax.swing.JLabel();
        jLabel27 = new javax.swing.JLabel();
        jLabel28 = new javax.swing.JLabel();
        jLabel29 = new javax.swing.JLabel();
        jLabel30 = new javax.swing.JLabel();
        jLabel31 = new javax.swing.JLabel();
        jButton2 = new javax.swing.JButton();
        jButton7 = new javax.swing.JButton();
        jComboBox1 = new javax.swing.JComboBox();
        jComboBox2 = new javax.swing.JComboBox();
        jComboBox3 = new javax.swing.JComboBox();
        jComboBox4 = new javax.swing.JComboBox();
        jLabel24 = new javax.swing.JLabel();
        jScrollPane4 = new javax.swing.JScrollPane();
        jTextArea2 = new javax.swing.JTextArea();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Avaliação de Ordens de Serviço");
        setBackground(Configurations.getBackGroundColor());
        setPreferredSize(new java.awt.Dimension(755, 650));
        addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentResized(java.awt.event.ComponentEvent evt) {
                formComponentResized(evt);
            }
        });
        getContentPane().setLayout(new java.awt.GridLayout(1, 0));

        jPanel4.setBackground(Configurations.getBackGroundColor());

        jPanel2.setBackground(Configurations.getBackGroundColor());
        jPanel2.setLayout(null);

        jPanel1.setBackground(Configurations.getBackGroundColor());
        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Avaliação das Ordens de Serviço"));
        jPanel1.setLayout(null);

        jScrollPane3.setViewportView(jTable1);

        jPanel1.add(jScrollPane3);
        jScrollPane3.setBounds(10, 20, 680, 120);

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel1.setText("Ponto de Atendimento");
        jPanel1.add(jLabel1);
        jLabel1.setBounds(340, 160, 150, 14);

        jLabel2.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel2.setText("Nº OS");
        jPanel1.add(jLabel2);
        jLabel2.setBounds(20, 160, 40, 14);

        jLabel3.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel3.setText("Unidade de Atendimento");
        jPanel1.add(jLabel3);
        jLabel3.setBounds(85, 160, 150, 14);

        jLabel5.setFont(new java.awt.Font("Tahoma", 1, 9)); // NOI18N
        jLabel5.setText("A2 - APRESENTAÇÃO E UNIFORMIZAÇÃO DA EQUIPE");
        jPanel1.add(jLabel5);
        jLabel5.setBounds(20, 310, 350, 14);

        jLabel6.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel6.setText("Tipo de OS");
        jPanel1.add(jLabel6);
        jLabel6.setBounds(310, 205, 80, 14);

        jLabel7.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel7.setText("Data de Finalização");
        jPanel1.add(jLabel7);
        jLabel7.setBounds(570, 205, 110, 14);

        jLabel8.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel8.setText("Data de Cadastro");
        jPanel1.add(jLabel8);
        jLabel8.setBounds(455, 205, 110, 14);

        jTextField1.setDisabledTextColor(new java.awt.Color(0, 0, 0));
        jTextField1.setEnabled(false);
        jPanel1.add(jTextField1);
        jTextField1.setBounds(20, 180, 60, 20);

        jTextField2.setDisabledTextColor(new java.awt.Color(0, 0, 0));
        jTextField2.setEnabled(false);
        jPanel1.add(jTextField2);
        jTextField2.setBounds(85, 180, 250, 20);

        jTextField3.setDisabledTextColor(new java.awt.Color(0, 0, 0));
        jTextField3.setEnabled(false);
        jPanel1.add(jTextField3);
        jTextField3.setBounds(340, 180, 340, 20);

        jTextField4.setDisabledTextColor(new java.awt.Color(0, 0, 0));
        jTextField4.setEnabled(false);
        jPanel1.add(jTextField4);
        jTextField4.setBounds(20, 225, 285, 20);

        jTextField5.setDisabledTextColor(new java.awt.Color(0, 0, 0));
        jTextField5.setEnabled(false);
        jPanel1.add(jTextField5);
        jTextField5.setBounds(310, 225, 140, 20);

        jTextField6.setDisabledTextColor(new java.awt.Color(0, 0, 0));
        jTextField6.setEnabled(false);
        jPanel1.add(jTextField6);
        jTextField6.setBounds(570, 225, 110, 20);

        jTextField7.setDisabledTextColor(new java.awt.Color(0, 0, 0));
        jTextField7.setEnabled(false);
        jPanel1.add(jTextField7);
        jTextField7.setBounds(455, 225, 110, 20);

        jLabel9.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel9.setText("Procedimento");
        jPanel1.add(jLabel9);
        jLabel9.setBounds(20, 205, 100, 14);

        jLabel11.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel11.setText("BOM");
        jPanel1.add(jLabel11);
        jLabel11.setBounds(460, 260, 80, 14);

        jLabel12.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel12.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel12.setText("REGULAR");
        jPanel1.add(jLabel12);
        jLabel12.setBounds(530, 260, 80, 14);

        jLabel13.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel13.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel13.setText("PÉSSIMO");
        jPanel1.add(jLabel13);
        jLabel13.setBounds(610, 260, 70, 14);

        jLabel14.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel14.setText("AVALIAÇÃO DE QUALIFICAÇÃO");
        jPanel1.add(jLabel14);
        jLabel14.setBounds(20, 350, 200, 14);

        jLabel15.setFont(new java.awt.Font("Tahoma", 1, 9)); // NOI18N
        jLabel15.setText("A1 - QUALIDADE E QUALIFICAÇÃO DA EQUIPE RESPONSÁVEL");
        jPanel1.add(jLabel15);
        jLabel15.setBounds(20, 285, 350, 14);
        jPanel1.add(jSeparator1);
        jSeparator1.setBounds(20, 375, 685, 5);

        jLabel18.setFont(new java.awt.Font("Tahoma", 1, 9)); // NOI18N
        jLabel18.setText("A3 - A EQUIPE ESTAVA DISPONÍVEL PARA A EXECUÇÃO DA OS NO HORÁRIO PREDETERMINADO DE TRABALHO ?");
        jPanel1.add(jLabel18);
        jLabel18.setBounds(20, 380, 590, 11);

        jSeparator2.setOrientation(javax.swing.SwingConstants.VERTICAL);
        jPanel1.add(jSeparator2);
        jSeparator2.setBounds(608, 350, 10, 105);
        jPanel1.add(jSeparator3);
        jSeparator3.setBounds(20, 305, 660, 5);
        jPanel1.add(jSeparator4);
        jSeparator4.setBounds(20, 282, 660, 10);

        jCheckBox1.setBackground(Configurations.getBackGroundColor());
        buttonGroup1.add(jCheckBox1);
        jCheckBox1.setSelected(true);
        jCheckBox1.setToolTipText("Os serviços são executados por funcionários capacitados e respeitando os horários pré-determinados.");
        jCheckBox1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jPanel1.add(jCheckBox1);
        jCheckBox1.setBounds(410, 285, 30, 14);

        jCheckBox2.setBackground(Configurations.getBackGroundColor());
        buttonGroup1.add(jCheckBox2);
        jCheckBox2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jPanel1.add(jCheckBox2);
        jCheckBox2.setBounds(490, 285, 20, 14);

        jCheckBox3.setBackground(Configurations.getBackGroundColor());
        buttonGroup1.add(jCheckBox3);
        jCheckBox3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jPanel1.add(jCheckBox3);
        jCheckBox3.setBounds(560, 285, 20, 14);

        jCheckBox4.setBackground(Configurations.getBackGroundColor());
        buttonGroup1.add(jCheckBox4);
        jCheckBox4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jPanel1.add(jCheckBox4);
        jCheckBox4.setBounds(630, 285, 30, 14);

        jCheckBox5.setBackground(Configurations.getBackGroundColor());
        buttonGroup2.add(jCheckBox5);
        jCheckBox5.setSelected(true);
        jCheckBox5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jPanel1.add(jCheckBox5);
        jCheckBox5.setBounds(410, 310, 30, 14);

        jCheckBox6.setBackground(Configurations.getBackGroundColor());
        buttonGroup2.add(jCheckBox6);
        jCheckBox6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jPanel1.add(jCheckBox6);
        jCheckBox6.setBounds(490, 310, 21, 14);

        jCheckBox7.setBackground(Configurations.getBackGroundColor());
        buttonGroup2.add(jCheckBox7);
        jCheckBox7.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jPanel1.add(jCheckBox7);
        jCheckBox7.setBounds(560, 310, 20, 14);

        jCheckBox8.setBackground(Configurations.getBackGroundColor());
        buttonGroup2.add(jCheckBox8);
        jCheckBox8.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jPanel1.add(jCheckBox8);
        jCheckBox8.setBounds(630, 310, 30, 14);
        jPanel1.add(jSeparator5);
        jSeparator5.setBounds(20, 330, 660, 5);

        jLabel16.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel16.setText("AVALIAÇÃO DE QUALIFICAÇÃO");
        jPanel1.add(jLabel16);
        jLabel16.setBounds(20, 260, 200, 14);

        jSeparator6.setOrientation(javax.swing.SwingConstants.VERTICAL);
        jPanel1.add(jSeparator6);
        jSeparator6.setBounds(370, 260, 10, 70);

        jLabel19.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel19.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel19.setText("MUITO BOM");
        jPanel1.add(jLabel19);
        jLabel19.setBounds(370, 260, 100, 14);

        jLabel20.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel20.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel20.setText("AVALIAÇÂO");
        jPanel1.add(jLabel20);
        jLabel20.setBounds(610, 350, 70, 14);

        jLabel21.setFont(new java.awt.Font("Tahoma", 1, 9)); // NOI18N
        jLabel21.setText("B2 - A OS FOI EXECUTADA COM PRESTEZA (AGILIDADE,CELERIDADE) ?");
        jPanel1.add(jLabel21);
        jLabel21.setBounds(20, 420, 590, 11);

        jLabel22.setFont(new java.awt.Font("Tahoma", 1, 9)); // NOI18N
        jLabel22.setText("B1 - A OS FOI EXECUTADA DE ACORDO COM AS ESPECTATIVAS PARA CORREÇÃO DO PROBLEMA ?");
        jPanel1.add(jLabel22);
        jLabel22.setBounds(20, 400, 590, 11);

        jLabel23.setFont(new java.awt.Font("Tahoma", 1, 9)); // NOI18N
        jLabel23.setText("B3 - A OS FOI EXECUTADA DE FORMA EFICAZ E EFICIENTE  ?");
        jPanel1.add(jLabel23);
        jLabel23.setBounds(20, 440, 590, 11);
        jPanel1.add(jSeparator7);
        jSeparator7.setBounds(20, 395, 685, 5);
        jPanel1.add(jSeparator8);
        jSeparator8.setBounds(20, 415, 685, 5);
        jPanel1.add(jSeparator9);
        jSeparator9.setBounds(20, 435, 685, 5);
        jPanel1.add(jSeparator10);
        jSeparator10.setBounds(20, 455, 685, 5);

        jLabel4.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel4.setText("?");
        jLabel4.setToolTipText("Os serviços são executados por funcionários capacitados, em quantidades adequadas, mas sem o devido cumprimento de horário.");
        jPanel1.add(jLabel4);
        jLabel4.setBounds(460, 283, 20, 20);

        jLabel17.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel17.setText("Comentários");
        jPanel1.add(jLabel17);
        jLabel17.setBounds(10, 470, 100, 14);

        jTextArea1.setColumns(20);
        jTextArea1.setFont(new java.awt.Font("Monospaced", 1, 10)); // NOI18N
        jTextArea1.setLineWrap(true);
        jTextArea1.setRows(2);
        jTextArea1.setWrapStyleWord(true);
        jScrollPane1.setViewportView(jTextArea1);
        jTextArea1.setDocument(new FixedLengthDocument(300));

        jPanel1.add(jScrollPane1);
        jScrollPane1.setBounds(10, 490, 680, 60);

        jLabel25.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel25.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel25.setText("?");
        jLabel25.setToolTipText("Os serviços são executados por funcionários capacitados e respeitando os horários pré-determinados.");
        jPanel1.add(jLabel25);
        jLabel25.setBounds(390, 283, 20, 20);

        jLabel26.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel26.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel26.setText("?");
        jLabel26.setToolTipText("Uniformes completos, limpos, passados, íntegros, empregados com identificação funcional completa, cabelos presos e barbas feitas.");
        jPanel1.add(jLabel26);
        jLabel26.setBounds(390, 306, 20, 20);

        jLabel27.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel27.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel27.setText("?");
        jLabel27.setToolTipText("Uniformes incompletos, porém, limpos, passados, íntegros, empregados com identificação funcional completa, cabelos presos e barbas feitas.");
        jPanel1.add(jLabel27);
        jLabel27.setBounds(460, 306, 20, 20);

        jLabel28.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel28.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel28.setText("?");
        jLabel28.setToolTipText("Uniformes completos, porém, sujos, amarrotados, empregados sem identificação funcional completa, usando gorros, sem o devido cuidado com higiene pessoal.");
        jPanel1.add(jLabel28);
        jLabel28.setBounds(530, 306, 20, 20);

        jLabel29.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel29.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel29.setText("?");
        jLabel29.setToolTipText("Uniformes incompletos, sujos, amassados, com peças de uso pessoal, higiene pessoal inadequado.");
        jLabel29.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        jPanel1.add(jLabel29);
        jLabel29.setBounds(600, 306, 20, 20);

        jLabel30.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel30.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel30.setText("?");
        jLabel30.setToolTipText("Os serviços são executados por funcionários incapacitados, as escalas dos funcionários estão incorretas, ocorrem atrasos que prejudicam as atividades, posturas inadequadas, desrespeitos aos servidores, agressividade no trato com os colegas.");
        jPanel1.add(jLabel30);
        jLabel30.setBounds(600, 283, 20, 20);

        jLabel31.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel31.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel31.setText("?");
        jLabel31.setToolTipText("Os serviços são executados por funcionários com capacitação precária sem o respeito aos horários pré-determinados e com posturas inadequadas.");
        jPanel1.add(jLabel31);
        jLabel31.setBounds(530, 283, 20, 20);

        jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/manager/images/add.png"))); // NOI18N
        jButton2.setText("Cadastrar");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });
        jPanel1.add(jButton2);
        jButton2.setBounds(10, 560, 100, 23);

        jButton7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/manager/images/cancel.png"))); // NOI18N
        jButton7.setText("Cancelar");
        jButton7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton7ActionPerformed(evt);
            }
        });
        jPanel1.add(jButton7);
        jButton7.setBounds(120, 560, 100, 23);

        jComboBox1.setFont(new java.awt.Font("Tahoma", 0, 9)); // NOI18N
        jPanel1.add(jComboBox1);
        jComboBox1.setBounds(610, 377, 90, 17);

        jComboBox2.setFont(new java.awt.Font("Tahoma", 0, 9)); // NOI18N
        jPanel1.add(jComboBox2);
        jComboBox2.setBounds(610, 397, 90, 17);

        jComboBox3.setFont(new java.awt.Font("Tahoma", 0, 9)); // NOI18N
        jPanel1.add(jComboBox3);
        jComboBox3.setBounds(610, 417, 90, 17);

        jComboBox4.setFont(new java.awt.Font("Tahoma", 0, 9)); // NOI18N
        jPanel1.add(jComboBox4);
        jComboBox4.setBounds(610, 437, 90, 17);

        jPanel2.add(jPanel1);
        jPanel1.setBounds(0, 0, 710, 590);

        jLabel24.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel24.setText("Descrição dos critérios de avaliação");
        jPanel2.add(jLabel24);
        jLabel24.setBounds(10, 600, 220, 14);

        jScrollPane4.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));

        jTextArea2.setColumns(20);
        jTextArea2.setEditable(false);
        jTextArea2.setRows(5);
        jTextArea2.setText("A1 – UNIFORMIDADE DA EQUIPE\n(1) Os serviços são executados por funcionários capacitados e respeitando os horários pré-determinados.\n(2) Os serviços são executados por funcionários capacitados, em quantidades adequadas, mas sem o devido cumprimento de horário.\n(3) Os serviços são executados por funcionários com capacitação precária sem o respeito aos horários pré-determinados e com posturas inadequadas.\n(4) Os serviços são executados por funcionários incapacitados, as escalas dos funcionários estão incorretas, ocorrem atrasos que prejudicam as atividades, posturas inadequadas, desrespeitos aos servidores, agressividade no trato com os colegas.\n\nA2 – APRESENTAÇÃO – UNIFORMIZAÇÃO\n(1) Uniformes completos, limpos, passados, íntegros, empregados com identificação funcional completa, cabelos presos e barbas feitas.\n(2) Uniformes incompletos, porém, limpos, passados, íntegros, empregados com identificação funcional completa, cabelos presos e barbas feitas.\n(3) Uniformes completos, porém, sujos, amarrotados, empregados sem identificação funcional completa, usando gorros, sem o devido cuidado com higiene pessoal.\n(4) Uniformes incompletos, sujos, amassados, com peças de uso pessoal, higiene pessoal inadequado.\n\nA3 – CUMPRIMENTO DO HORÁRIO DE TRABALHO\n100% dos postos de trabalho cumprem o horário de trabalho.\n90 a 99% dos postos de trabalho cumprem o horário de trabalho\n 70 a 89% dos postos de trabalho cumprem o horário de trabalho, conforme o item 5 deste Termo de Referência.\nMenos de 69% dos postos de trabalho cumprem o horário de trabalho, conforme o item 5 deste Termo de Referência.\n\nB1 - CUMPRIMENTO DAS ORDENS DE SERVIÇO\n100% dos postos de trabalho cumprem as atividades delegadas à CONTRATADA.\n90 a 99% dos postos de trabalho cumprem as atividades delegadas à CONTRATADA.\n70 a 89% dos postos de trabalho cumprem as atividades delegadas à CONTRATADA.\nMenos de 69% dos postos de trabalho cumprem as atividades delegadas à CONTRATADA.\n\nB2- PRESTEZA NA EXECUÇÃO DOS SERVIÇOS\n100% dos postos de trabalho executam os serviços com presteza.\n90 a 99% dos postos de trabalho executam os serviços com presteza.\n70 a 89% dos postos de trabalho executam os serviços com presteza.\nMenos de 69% dos postos de trabalho executam os serviços com presteza.\n\nB3 - EXECUÇÃO DOS SERVIÇOS DE FORMA EFICAZ E EFICIENTE\n100% dos postos do trabalho executam os serviços de forma eficaz e eficiente.\n90 a 99% dos postos do trabalho executam os serviços de forma eficaz e eficiente.\n70 a 89% dos postos do trabalho executam os serviços de forma eficaz e eficiente.\nMenos de 69% dos postos do trabalho executam os serviços de forma eficaz e eficiente..\n");
        jScrollPane4.setViewportView(jTextArea2);

        jPanel2.add(jScrollPane4);
        jScrollPane4.setBounds(10, 620, 690, 110);

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 714, Short.MAX_VALUE)
            .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel4Layout.createSequentialGroup()
                    .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 713, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(0, 1, Short.MAX_VALUE)))
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 735, Short.MAX_VALUE)
            .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel4Layout.createSequentialGroup()
                    .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 735, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(0, 0, Short.MAX_VALUE)))
        );

        jScrollPane2.setViewportView(jPanel4);

        getContentPane().add(jScrollPane2);
        jScrollPane2.getVerticalScrollBar().setUnitIncrement(30);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void formComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentResized
    }//GEN-LAST:event_formComponentResized

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
        if (idOrdemServico != 0) {
            cadastrarAvaliacaoOS();
        } else {
            JOptionPane.showMessageDialog(null, "Selecione uma Ordem de Serviço.", "Avaliação de Ordem de Serviço", JOptionPane.ERROR_MESSAGE);
        }
    }//GEN-LAST:event_jButton2ActionPerformed

    private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton7ActionPerformed
        cancelarAvaliacaoOS();
    }//GEN-LAST:event_jButton7ActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.ButtonGroup buttonGroup2;
    private javax.swing.ButtonGroup buttonGroup3;
    private javax.swing.ButtonGroup buttonGroup4;
    private javax.swing.ButtonGroup buttonGroup5;
    private javax.swing.ButtonGroup buttonGroup6;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton7;
    private javax.swing.JCheckBox jCheckBox1;
    private javax.swing.JCheckBox jCheckBox2;
    private javax.swing.JCheckBox jCheckBox3;
    private javax.swing.JCheckBox jCheckBox4;
    private javax.swing.JCheckBox jCheckBox5;
    private javax.swing.JCheckBox jCheckBox6;
    private javax.swing.JCheckBox jCheckBox7;
    private javax.swing.JCheckBox jCheckBox8;
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JComboBox jComboBox2;
    private javax.swing.JComboBox jComboBox3;
    private javax.swing.JComboBox jComboBox4;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JLabel jLabel19;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel20;
    private javax.swing.JLabel jLabel21;
    private javax.swing.JLabel jLabel22;
    private javax.swing.JLabel jLabel23;
    private javax.swing.JLabel jLabel24;
    private javax.swing.JLabel jLabel25;
    private javax.swing.JLabel jLabel26;
    private javax.swing.JLabel jLabel27;
    private javax.swing.JLabel jLabel28;
    private javax.swing.JLabel jLabel29;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel30;
    private javax.swing.JLabel jLabel31;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JSeparator jSeparator10;
    private javax.swing.JSeparator jSeparator2;
    private javax.swing.JSeparator jSeparator3;
    private javax.swing.JSeparator jSeparator4;
    private javax.swing.JSeparator jSeparator5;
    private javax.swing.JSeparator jSeparator6;
    private javax.swing.JSeparator jSeparator7;
    private javax.swing.JSeparator jSeparator8;
    private javax.swing.JSeparator jSeparator9;
    private javax.swing.JTable jTable1;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextArea jTextArea2;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    private javax.swing.JTextField jTextField4;
    private javax.swing.JTextField jTextField5;
    private javax.swing.JTextField jTextField6;
    private javax.swing.JTextField jTextField7;
    // End of variables declaration//GEN-END:variables
}
